Reference is firstly made to the following publications, [Shannon, 48]. Claude Shannon, “The Mathematical Theory of Communication,” Bell Systems Technical Journal, 30:50-64, 1948, and [Rymon, 92]. Search Through Systematic Set Enumeration. Principles of Knowledge Representation and Reasoning, pp. 539-550, Morgan-Kaufman, 1992, the contents of which are hereby incorporated by reference.
A growing number of enterprise software applications are role-based, i.e., users and sometimes transactions are logically grouped based on a certain commonality. Examples of such applications include but are not limited to Security Authorization, Authentication, and Administration (3A), and Role-Based Access Control (RBAC), Enterprise Resource Planning (ERP), Human Resources/User Provisioning, eBusiness Management, and Supply Chain Management (SCP). The use of roles (sometimes formulated as “rules”) makes using these large software suites more manageable and more efficient.
The problem is that when a new software suite is about to be deployed in an organization that has not previously used them, the task of identifying and specifying roles is extremely hard and practically intractable for medium and large organizations. Computationally, the cost of simply considering all possible roles is equivalent to solving an NP-Hard problem and is thus not amenable to a brute force search algorithm.
Without tools that can identify logical roles and groupings, organizations find themselves in one of three situations:                (1) they are unable to implement roles, or they implement roles in only a small part of the organization        (2) they use consultants and internal staff for a significant period of time and at a very high cost, to manually identify and specify roles, and        
Organizations that fall into the first category are simply not reaping the full benefits of the specific enterprise software. Organizations that fall into the second category find themselves paying dearly in implementation costs. Indeed it is estimated that the cost of implementing enterprise software ranges from two to ten times the cost of the original license for the software itself. In addition, such projects are risky and may significantly delay the implementation of newly purchased software.